<?php
/**
 * Application level Controller
 *
 * This file is application-wide controller file. You can put all
 * application-wide controller-related methods here.
 *
 * PHP 5
 *
 * CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
 * @link          http://cakephp.org CakePHP(tm) Project
 * @package       app.Controller
 * @since         CakePHP(tm) v 0.2.9
 * @license       MIT License (http://www.opensource.org/licenses/mit-license.php)
 */
App::uses('Controller', 'Controller');

/**
 * Application Controller
 *
 * Add your application-wide methods in the class below, your controllers
 * will inherit them.
 *
 * @package		app.Controller
 * @link		http://book.cakephp.org/2.0/en/controllers.html#the-app-controller
 */
class AppController extends Controller {
	public $components = array(
		'Session', 'RequestHandler',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'index', 'admin' => true),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'login', 'admin' => true)
	)
	);	
	public function beforeFilter() {
		// save previous url to session
		if($this->action === 'admin_index' || $this->action === 'admin_view'){
			$this->Session->write('Controller.toUrl', Router::url(null, true));
		}
		// allow all action
		$this->Auth->allow();

		if($this->params['api']){
//			if ($this->request->is('ajax')) {
				// prepare json layout for ajax call
				$this->layout = null;
				$this->RequestHandler = $this->Components->load('RequestHandler');
				$this->RequestHandler->respondAs('application/json');
				$this->disableCache();
				$this->Auth->deny();
//			}
//			else{
//				throw new ForbiddenException();
//			}
		}
		else if($this->params['ajax']){
//			if ($this->request->is('ajax')) {
				$this->layout = 'ajax';
				$this->Auth->deny();
//			}
//			else{
//				throw new ForbiddenException();
//			}				
		}		
		else if($this->params['admin']){
			$this->layout = 'admin';
			$this->Auth->deny();
		}
	}
	
	function getFileExtension($file_name) {
		return substr(strrchr($file_name,'.'),1);
	}
}
